1. Field of the Invention
The present invention generally relates to data transmissions, and, more specifically, to a system and method for sending arbitrary packet types across a data connector.
2. Description of the Related Art
A typical data connector, such as a peripheral component interface (PCI) or PCI express (PCIe), allows different processing units within a computer system to exchange data with one another. For example, a conventional computer system could include a central processing unit (CPU) that exchanges data with a graphics processing unit (GPU) across a PCIe bus.
When data is transmitted across the data connector, that data must adhere to a specific “communication protocol” associated with the data connector. A communication protocol usually specifies a set of packet types that can be transmitted across the data connector. Processing units that exchange data using the data connector, such as the CPU and GPU in the example above, must be configured to format data that is to be sent across the data connector based on one of the available packet types.
A conventional GPU is typically fabricated with hardwired logic that supports the communication protocol currently in use by a given data connector and allows the GPU to generate the various available packet types. That communication protocol is constantly evolving, though, and occasionally certain enhancements are released which introduce a new packet type (or types) into the protocol. When this situation occurs, a GPU that is already on the market lacks the hardwired logic required to generate the new packet type. Consequently, an updated GPU may be put into production that includes redesigned logic that supports the enhanced communication protocol and is capable of generating the new packet type.
Problems arise, however, due to the long production cycle usually needed to bring a GPU to market. A typical production cycle can last as long as two years, and during that time any number of additional enhancements to the communication protocol may be released, introducing even more new packet types into the protocol. Thus, when an updated GPU is put into production to add support for a given enhancement, additional enhancements may be released mid-production cycle that cannot be supported by the hardwired logic within the GPU. Accordingly, by the time the “updated” GPU is actually released to the market, that GPU would appear to be outdated. Releasing a GPU that only supports an older communication protocol makes that GPU less marketable and reflects poorly on the manufacturer of the GPU.
Accordingly, what is needed in the art is a technique that enables GPUs already out on the market to support updated communication protocols.